Context profile identification and sharing

ABSTRACT

A server device may receive, from a user device, application activity data associated with the user device; determine, based on the application activity data, a location associated with the user device; store information associating the application activity data with a call identifier and the location; receive an indication that an incoming call has been received, the incoming call being placed using the call identifier; determine, based on receiving the indication, a location of a caller that placed the call; identify the application activity data based on the call identifier and the location of the caller; and output the application activity data to a callee associated with the call.

BACKGROUND

When a user contacts a customer service provider, associated with aparticular application, the customer service provider may attempt toassist the user (e.g., resolve technical issues, place an order forgoods and/or services, etc.). The customer service provider may beunaware of the user's interaction with the application prior to when theuser contacts the customer service provider.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example overview of an implementation describedherein;

FIG. 2 illustrates an example environment in which systems and/ormethods, described herein, may be implemented;

FIG. 3 illustrates a flowchart of an example process for providing acontext profile to a customer service system;

FIG. 4 illustrates a flowchart of an example process for identifying aparticular context profile;

FIG. 5 illustrates a signal flow diagram of example operations forproviding a context profile to a customer service system;

FIG. 6 illustrates an example data structure that may store contextprofiles and associated telephone numbers;

FIG. 7 illustrates an example implementation for providing a user'scontext profile to a customer service system; and

FIG. 8 illustrates example components of one or more devices, accordingto one or more implementations described herein.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements.

When a user contacts a customer service provider, associated with aparticular application, the customer service provider may be unaware ofthe user's application activity data. As used herein, the term“application activity data” may refer to a user's interactions with anapplication, a user's browsing activity among a group of web pages(herein after referred to as “pages”), a user's interaction withinparticular pages (e.g., selections of scripts within pages), etc.Knowledge of the user's application activity data may permit thecustomer service provider to better assist the user when the usercontacts the customer service provider. For example, knowledge of theuser's application activity data may permit the customer serviceprovider to better assist the user resolve technical issues, place anorder for goods and/or services, etc.

Systems and/or methods, as described herein, may generate a contextprofile for a user, and associate an identifier (e.g., a telephonenumber) with the user's context profile. When the user contacts thecustomer service provider by placing a call to the telephone number, thecustomer service provider may receive the user's context profile. Thecontext profile may include information identifying the user'sapplication activity data, and/or some other information regarding areason for the user's call to the customer service provider. Informationin the context profile may be used to display (e.g., in a graphical userinterface) the user's application activity data, such as the user'sinputs (e.g., the user's interactions with a page and/or application).Since the customer service provider may receive the user's contextprofile, the customer service provider may be able to better assist theuser in relation to when the customer service provider does not receivethe user's context profile.

In some implementations, the systems and/or methods may associatemultiple context profiles with a particular telephone number. Each ofthe multiple context profiles may be associated with a particulargeographic location (hereinafter referred to as a “location”). Forexample, when generating the context profile, the location associatedwith the context profile may be identified (e.g., based on an internetprotocol (“IP”) address of a user device associated with the applicationactivity data). When a call is placed to the particular telephonenumber, a particular context profile may be identified based on thelocation of the caller and based on the particular telephone numbercalled.

FIG. 1 illustrates an example overview of an implementation describedherein. As shown in FIG. 1, a user device may provide applicationactivity data to a context profile system (arrow 1). The applicationactivity data may include metadata and/or some other type of data thatidentifies pages visited by a user of the user device (e.g., pagesassociated with a customer service provider), the user's interactionswith the pages, contents of the user's shopping cart, the user'sinteractions with an application associated with the customer serviceprovider, and/or other activity data.

A context profile system may receive the application activity data, andmay generate a context profile for the user (arrow 2). As the usercontinues to interact with pages and/or applications, the contextprofile system may monitor the application activity, and store theuser's application activity data information in the context profile. Thecontext profile system may also store information associating the user'scontext profile with a location. In some implementations, the locationmay be determined based on the IP address. Additionally, oralternatively, the location may be determined based on some othertechnique.

The context profile system may receive a telephone number request (3)(e.g., when the user requests the telephone number in order to contactthe customer service provider). Based on receiving the telephone numberrequest, the context profile system may select a telephone number, in agroup of available telephone numbers, and provide a particular availabletelephone number (arrow 4). The context profile system may alsoassociate the telephone number with the user's context profile.

After providing the telephone number, the context profile system mayreceive an indication of a telephone call (arrow 5). The call may beplaced by the user device and/or by another device. For example, thecontext profile system may receive the indication of the telephone callwhen a call is placed to the telephone number provided by the contextprofile system. Based on receiving the telephone call indication, thecontext profile system may identify the particular context profileassociated with the telephone number (arrow 6), and provide the contextprofile to a customer service system associated with the customerservice provider (arrow 7). Based on receiving the user's contextprofile, an operator, associated with the customer service system, mayreview the user's context profile to better assist the user than if theoperator did not receive the user's context profile.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods described herein may be implemented. As shown in FIG. 2,environment 200 may include user device 210, voice portal system 220,context profile server 230, number repository server 240, customerservice system 250, and network 260. In some implementations, voiceportal system 220, context profile server 230, and number repositoryserver 240 may be part of a context profile system. The context profilesystem and customer service system 250 may be associated with a customerservice provider.

User device 210 may include a device capable of communicating via anetwork, such as network 260. For example, user device 210 maycorrespond to a mobile communication device (e.g., a smart phone or apersonal digital assistant (“PDA”)), a portable computer device (e.g., alaptop or a tablet computer), a gaming device, a set-top box, a desktopcomputer device, and/or another type of device. In some implementations,a user of user device 210 may interact with an application and/or agroup of pages, associated with a customer service provider. Forexample, user device 210 may communicate with an application or webserver as the user interacts with the application and/or group of pages.User device 210 may provide, to context profile server 230, applicationactivity data (e.g., information regarding the user's interactions withan application, the user's browsing activity among a group of pages theuser's interaction within particular pages, etc.). User device 210 maybe used to request a telephone number from context profile server 230and/or number repository server 240 (e.g., to be used to contact acustomer service provider associated with the application and/or groupof pages).

Voice portal system 220 may include one or more computing devices, suchas a server device or a collection of server devices. In someimplementations, voice portal system 220 may receive a telephone callfrom a user when the user places a call to customer service provider(e.g., using a telephone number provided by context profile server 230and/or number repository server 240). Voice portal system 220 and maygather information identifying the purpose of the user's call. Forexample, voice portal system 220 may receive the information identifyingthe purpose of the user's call via voice recognition techniques,touch-tone feedback techniques, and/or via some other technique. In someimplementations, voice portal system 220 may provide the receivedinformation (referred herein as “voice portal data”) to context profileserver 230. The voice portal data may also include informationidentifying the telephone number that the user dialed to contact thecustomer service provider. The voice portal data may further include theuser's telephone number (e.g., via a caller ID technique and/or someother technique). In some implementations, voice portal system 220 mayforward the telephone call to customer service system 250, associatedwith the customer service provider, once the voice portal data has beengathered and provided to context profile server 230.

Context profile server 230 may include one or more computing devices,such as a server device or a collection of server devices. In someimplementations, context profile server 230 may monitor applicationactivity data associated with user device 210, and may maintain acontext profile based on the application activity data. Context profileserver 230 may maintain multiple context profiles for correspondingusers. In some implementations, context profile server 230 may receive arequest for a telephone number, and may provide the request to numberrepository server 240. Context profile server 230 may then provide thetelephone number to user device 210, or direct number repository server240 to provide the telephone number. Context profile server 230 mayassociate the telephone number with a context profile associated with auser that requested the telephone number.

Context profile server 230 may receive an indication of a telephone callto the provided telephone number, and may identify a context profileassociated with the telephone number. In some implementations, contextprofile server 230 may receive the indication of the telephone call aspart of voice portal data from voice portal system 220. Alternatively,context profile server 230 may receive the indication without involvingvoice portal system 220. In some implementations, context profile server230 may store the voice portal data as part of the context profile.Context profile server 230 may provide the context profile to customerservice system 250 based on identifying the context profile associatedwith the telephone number identified in the indication and/or voiceportal data. In some implementations, context profile server 230 maydetermine that a telephone number has expired, and may provide anindication, to number repository server 240, that the telephone numberhas expired (e.g., so that the telephone number may be made availablefor reuse). Context profile server 230 may also remove an associationbetween the expired telephone number and the context profile.

Number repository server 240 may include one or more computing devices,such as a server device or a collection of server devices. Numberrepository server 240 may store a list of telephone numbers that may beused to contact a customer service provider. In some implementations,number repository server 240 may store multiple lists of telephonenumbers. Each list of telephone numbers may be associated with aparticular geographic location or region. The quantity of telephonenumbers in the list of telephone numbers for one region may be equal toor different than the quantity of telephone numbers in the list oftelephone numbers for another region (e.g., to accommodate regions ofdifferent sizes). In some implementations, a list of telephone numbersmay be associated with a particular group of users. For example, aparticular group of users may be associated with a particular list oftelephone numbers that may be reserved for use by members of that group.

Number repository server 240 may maintain information identifyingwhether a telephone number is already in use (e.g., numbers that havealready been provided and/or associated with a context profile). Forexample, number repository server 240 may store information identifyingthat a telephone number is in use when number repository server 240provides the telephone number in response to a request for the telephonenumber. Number repository server 240 may store information identifyingthat the telephone number is available when context profile server 230provides an indication that the telephone number has expired. In someimplementations, number repository server 240 may provide a telephonenumber that is already in use when no available telephone numbers exist.As described above, context profile server 230 may associate multiplecontext profiles with a particular telephone number, and identify aparticular context profile based on a location associated with theparticular text profile and a location identified by an area code of acalling party.

Customer service system 250 may include one or more computing devices,such as a server device or a collection of server devices. In someimplementations, customer service system 250 may receive a contextprofile from context profile server 230. For example, customer servicesystem 250 may receive a context profile associated with a telephonenumber used to contact a customer service provider associated withcustomer service system 250. An operator of customer service system 250may receive the context profile and may assist the user (e.g., via thetelephone call) based on information included in the context profile.

Network 260 may include one or more wired and/or wireless networks. Forexample, network 260 may include a cellular network (e.g., a secondgeneration (“2G”) network, a third generation (“3G”) network, a fourthgeneration (“4G”) network, a fifth generation (“5G”) network, along-term evolution (“LTE”) network, a global system for mobile (“GSM”)network, a code division multiple access (“CDMA”) network, anevolution-data optimized (“EVDO”) network, or the like), a public landmobile network (“PLMN”), and/or another network. Additionally, oralternatively, network 260 may include a local area network (“LAN”), awide area network (“WAN”), a metropolitan network (“MAN”), the PublicSwitched Telephone Network (“PSTN”), an ad hoc network, a managed IPnetwork, a virtual private network (“VPN”), an intranet, the Internet, afiber optic-based network, and/or a combination of these or other typesof networks.

The quantity of devices and/or networks in environment is not limited towhat is shown in FIG. 2. In practice, environment 200 may includeadditional devices and/or networks; fewer devices and/or networks;different devices and/or networks; or differently arranged devicesand/or networks than illustrated in FIG. 2. Also, in someimplementations, one or more of the devices of environment 200 mayperform one or more functions described as being performed by anotherone or more of the devices of environment 200. Devices of environment200 may interconnect via wired connections, wireless connections, or acombination of wired and wireless connections.

FIG. 3 illustrates a flowchart of an example process 300 for providing acontext profile to a customer service system. In some implementations,process 300 may be performed by context profile server 230. In someimplementations, some or all of blocks of process 300 may be performedby one or more other devices.

As shown in FIG. 3, process 300 may include receiving applicationactivity data (block 310). For example, context profile server 230 mayreceive application activity data from user device 210 as a user of userdevice 210 interacts with pages and/or applications associated with acustomer service provider. The application activity data may alsouniquely identify the user (e.g., based on an IP address via which userdevice 210 communicates, login information provided by the user wheninteracting with the pages, etc.). Context profile server 230 maycontinuously monitor the application activity by periodically orintermittently receiving application activity data.

Process 300 may also include generating and/or modifying a contextprofile (block 315). For example, context profile server 230 maygenerate a context profile for the user, or modify an existing contextprofile if a context profile already exists for the user. The contextprofile may store information regarding the user's application activitydata. Context profile server 230 may continuously update the contextprofile as context profile server 230 periodically or intermittentlyreceives application activity data. In some implementations, contextprofile server 230 may associate location information with the contextprofile. In some implementations, the location may be determined basedon the IP address. Additionally, or alternatively, the location may bedetermined based on some other technique.

Process 300 may further include receiving a telephone number request(block 320). For example, context profile server 230 may receive thetelephone number request from user device 210 when the user requests thetelephone number in order to contact the customer service provider. Insome implementations, the user may request the telephone number via apage and/or an application that may present an option for the user torequest the telephone number. For example, the page and/or applicationmay present a button that, when selected by the user, may cause userdevice 210 to provide the telephone number request.

Process 300 may also include requesting and providing the telephonenumber to the user device (block 325). For example, context profileserver 230 may request the telephone number from number repositoryserver 240. In some implementations, the request for the telephonenumber may include information identifying the user, and/or informationidentifying a location of user device 210 (e.g., an IP address, userprofile information, etc.). Based on receiving the request, numberrepository server 240 may provide a telephone number.

In some implementations, number repository server 240 may provide aparticular telephone number out of a group of telephone numbersassociated with the identified location and/or with the user. Forexample, as described above, number repository server 240 may storemultiple lists of telephone numbers, and each list may be associatedwith a particular region or a particular group of users. Numberrepository server 240 may select a particular telephone number from aparticular list of telephone numbers associated with the identifiedlocation or with the user. In some implementations, number repositoryserver 240 may select a telephone number, regardless of the location orthe user identified in the telephone number request.

As described above, number repository server 240 may maintaininformation identifying whether a telephone number is already in use(e.g., have already been provided and/or associated with a contextprofile). Number repository server 240 may select a telephone numberthat is not in use and provide the selected telephone number. In someimplementations, number repository server 240 may select a telephonenumber that is already in use if a telephone number that is not in useis not available. In some implementations, context profile server 230may receive the selected telephone number, and provide the selectedtelephone number to user device 210.

Process 300 may also include associating the context profile with thetelephone number (block 330). For example, context profile server 230may associate the context profile with the telephone number by storinginformation (e.g., in a data structure) that indicates that the contextprofile is associated with the telephone number.

Process 300 may further include receiving a call indication (block 335).For example, context profile server 230 may receive the call indicationwhen the user places a telephone call to the customer service providerusing the telephone number provided to user device 210. The callindication may identify the telephone number used to place the telephonecall to the customer service provider. In some implementations, contextprofile server 230 may receive the call indication as part of voiceportal data. For example, when the user places the telephone call, voiceportal system 220 may answer the telephone call and gather informationidentifying the purpose of 7the user's call. Voice portal system 220 mayprovide the gathered information (e.g., voice portal data including thecall indication) to context profile server 230. In some implementations,context profile server 230 may receive the call indication withoutinvolving voice portal system 220. For example, in an implementationwhere voice portal system 220 is not present, context profile server 230may receive the call indication from a call server or from other serveror system when the user places the telephone call to the customerservice provider.

Process 300 may also include identifying the context profile associatedwith the telephone number (block 340). For example, context profileserver 230 may identify the context profile associated with thetelephone number associated the call indication. In someimplementations, context profile server 230 may look up the telephonenumber in a data structure that identifies telephone numbers associatedwith context profiles. As described in greater detail below with respectto FIG. 4, context profile server 230 may identify a particular contextprofile if multiple context profiles are associated with the telephonenumber.

Process 300 may further include updating the context provide to includevoice portal data (block 345). For example, context profile server 230may update the context profile if context profile server 230 receivesvoice portal data from voice portal system 220, as described above. Insome implementations, context profile server 230 may update the contextprofile to include information regarding the purpose for the user'scall, as identified by the voice portal data.

Process 300 may also include providing the context profile to a customerservice system (block 350). For example, context profile server 230 mayprovide the context profile to customer service system 250. Oncecustomer service system 250 receives the context profile, an operator ofcustomer service system 250 may assist the user (e.g., via the telephonecall) based on information included in the context profile. As anexample the operator of customer service system 250 may assist the userperform a task using an application or service associated with thecustomer service provider. Based on information included in the contextprofile, the operator may identify the user's intentions to betterassist the user (e.g., in relation to when the context profile is notreceived). Further, the operator may identify actions the user has takenbased on information in the context profile so that these actions maynot be redundantly performed. Further, the operator may be betterprepared to assist the user and may have a better understanding of howto assist the user based on information included in the context profile(e.g., in relation to when the context profile is not received). In someimplementations, context profile server 230 may discard the contextprofile once provided to customer service system 250.

Process 300 may further include determining that the telephone numberhas expired and providing an expiration indication (block 355). In someimplementations, context profile server 230 may determine that thetelephone number has expired when one or more criteria have been met.For example, context profile server 230 may determine that the telephonenumber has expired once the telephone number has been used to contactthe customer service provider (e.g., based on receiving the callindication). As another example, context profile server 230 maydetermine that the telephone number has expired when a particular timehas elapsed after the telephone number has been provided to user device210.

As another example, context profile server 230 may determine that thetelephone number has expired when the application activity indicatesthat the user may no longer be interested in contacting the customerservice provider using the telephone number. For example, contextprofile server 230 may determine (e.g., based on application activityreceived after the telephone number has been provided to user device210), that the user may no longer be interested in contacting thecustomer service provider using the telephone number when the userselects to contact the customer service provider via another technique(e.g., e-mail, online chat, etc.). Additionally, or alternatively,context profile server 230 may determine that the user may no longer beinterested in contacting the customer service provider using thetelephone number when the user accesses a resource (e.g., aknowledge-base, a technical help resource, etc.), and the accessing ofthat resource indicates that the user may no longer be interested incontacting the customer service provider. Additionally, oralternatively, context profile server 230 may determine that the usermay no longer be interested in contacting the customer service providerusing the telephone number when the user selects to perform a task viathe application instead of performing the task via contacting thecustomer service provider (e.g., opening an account, placing an order,etc.).

Once context profile server 230 determines that the telephone number hasexpired, context profile server 230 may provide an indication of theexpiration to number repository server 240. Number repository server 240may then update information to identify that the telephone number nolonger in use.

FIG. 4 illustrates a flowchart of an example process 400 for identifyinga particular context profile. In some implementations, process 400 maybe performed by context profile server 230. In some implementations,some or all of blocks of process 400 may be performed by one or moreother devices. In some implementations, process 400 may correspond tooperations associated with process block 340 described above withrespect to FIG. 3.

As shown in FIG. 4, process 400 may include receiving a call indication(block 410). For example, as described above, context profile server 230may receive the call indication when the user places a telephone call toa customer service provider. The call indication may identify thecaller's telephone number (e.g., the user's telephone number) and mayalso identify the called telephone number (e.g., the telephone numberassociated with the customer service provider).

Process 400 may also include determining whether multiple contextprofiles are associated with the called telephone number (block 420).For example, context profile server 230 may look up the called telephonenumber in a data structure that identifies context profiles associatedwith the called telephone number.

If context profile server 230 determines that multiple context profilesare associated with the called telephone number (block 420-YES), process400 may further include determining the location associated with thecaller's telephone number (block 430). For example, context profileserver 230 may determine the location associated with the caller'stelephone number based on an area code associated with the caller'sphone number. Additionally, or alternatively, context profile server 230may determine the location associated with the caller's telephone numberbased on a directory.

Process 400 may also include identifying the particular context profileassociated with the determined location (block 440). For example,context profile server 230 may identify the particular context profileassociated with the determined location. As such, the context profileserver 230 may identify the particular context profile based on both theuser's location (e.g., the location associated with the user's telephonenumber) and the called telephone number (e.g., the telephone numberassigned to the particular context profile). Once the particular contextprofile has been determined, context profile server 230 may update theparticular context profile (e.g., with voice portal information).Additionally, or alternatively, context profile server 230 may providethe particular context profile to customer service system 250.

If, on the other hand, context profile server 230 determines thatmultiple context profiles are not associated with the called telephonenumber, process 400 may further include identifying the context profileassociated with the called telephone number (block 450). For example,context profile server 230 may identify the context profile associatedwith the called telephone number, update the context profile, andprovide the context profile to customer service system 250.

FIG. 5 illustrates a signal flow diagram of example operations forproviding a context profile to a customer service system. As shown inFIG. 5, user device 210 may provide application activity data (at 510),for example, as a user interacts with an application and/or group ofpages associated with a customer service provider. Context profileserver 230 may generate a context profile (or modify an existing contextprofile) for the user based on receiving the application activity data(at 515).

User device 210 may provide a telephone number request when the userrequests the telephone number in order to contact the customer serviceprovider. In some implementations, the user may request the telephonenumber via a page and/or an application that may present an option forthe user to request the telephone number. For example, the page and/orapplication may present a button that, when selected by the user, maycause user device 210 to provide the telephone number request. Contextprofile server 230 may provide the telephone number request to numberrepository server 240 (at 525), and number repository server 240 mayprovide a telephone number response (at 530) to user device 210, forexample, via context profile server 230. Context profile server 230 mayassociate the telephone number with the context profile. Voice portalsystem 220 may receive a telephone call from a user that dialed thetelephone number associated with the telephone number response (at 540)(e.g., from user device 210 or another device). Voice portal system 220may form voice portal data based on information received from the uservia the telephone call. Voice portal system 220 may provide the voiceportal data (at 545) to context profile server 230. Voice portal system220 may also forward the telephone call to customer service system 250so that an operator of customer service system 250 may assist the uservia the telephone call.

Context profile server 230 may identify the context profile associatedwith the telephone number associated with the voice portal data (at550), and update the context profile to include informationcorresponding to the voice portal data (at 555). As described above, ifcontext profile server 230 identifies multiple context profilesassociated with the telephone number, context profile server 230 mayidentify a particular context profile based on a location associatedwith the context profile and a location associated with the caller'stelephone number identified by the voice portal data. Context profileserver 230 may then provide the particular context profile to customerservice system 250 (at 560) so that the operator of customer servicesystem 250 may receive the context profile when assisting the user.

Context profile server 230 may determine that the telephone number hasexpired (at 565) based on receiving the voice portal data indicatingthat the telephone number has been used by the user to contact thecustomer service provider. Context profile server 230 may provide atelephone number expiration indication (at 570) to number repositoryserver 240, and number repository server 240 may then update informationthat indicates that the telephone number is available for use (at 575).

FIG. 6 illustrates an example data structure 600 that may store contextprofiles and associated telephone numbers. In some implementations, datastructure 600 may be stored in a memory of context profile server 230.In some implementations, data structure 600 may be stored in a memoryseparate from, but accessible by, context profile server 230 (e.g., a“cloud” storage device). In some implementations, data structure 600 maybe stored by some other device in environment 200, such as user device210, voice portal system 220, number repository server 240, and/orcustomer service system 250. A particular instance of data structure 600may contain different information and/or fields than another instance ofdata structure 600.

Each entry in data structure 600 may store information identifying auser, information associated with a context profile of the user (e.g.,the user's context profile and/or a link to the user's context profile),a location associated with the context profile, and/or a telephonenumber associated with the context profile. Information in each contextprofile may be used to display (e.g., in a graphical user interface) theuser's application activity data, such as the user's inputs (e.g., theuser's interactions with a page and/or application). Information storedby data structure 600 may be used to identify a context profileassociated with a telephone number.

As described above, location information, in addition to the telephonenumber, may be used to identify a context profile when multiple contextprofiles are associated with a single telephone number. For example, asshown in FIG. 6, telephone number 4 may be associated with two contextprofiles (e.g., profile 4 and profile 5). Profile 4 may be identifiedwhen telephone number 4 is called and when the caller's telephone numbercorresponds to location 4. Profile 5 may be identified when telephonenumber 4 is called and when the caller's telephone number corresponds tolocation 5.

While particular fields are shown in a particular format in datastructure 600, in practice, data structure 600 may include additionalfields, fewer fields, different fields, or differently arranged fieldsthan are shown in FIG. 6. Also, FIG. 6 illustrates examples ofinformation stored by data structure 600. In practice, other examples ofinformation stored by data structure 600 are possible.

FIG. 7 illustrates an example implementation for providing a user'scontext profile to a customer service system. As shown in FIG. 7, userdevice 210 may provide application activity data (at arrow 7.1), forexample, as a user interacts with an application and/or group of pagesassociated with a customer service provider. Context profile server 230may generate a context profile (or modify an existing context profile)for the user based on receiving the application activity data (at arrow7.2).

User device 210 may provide a telephone number request when the userrequests the telephone number in order to contact the customer serviceprovider (arrow 7.3). Context profile server 230 may provide thetelephone number request to number repository server 240 (arrow 7.4),and number repository server 240 may provide a telephone number response(arrow 7.5) to user device 210, for example, via context profile server230 (arrow 7.6). Context profile server 230 may associate the telephonenumber with the context profile (arrow 7.7). Voice portal system 220 mayreceive a telephone call from a user that dialed the telephone numberassociated with the telephone number response (arrow 7.8). Voice portalsystem 220 may form voice portal data based on information received fromthe user via the telephone call. Voice portal system 220 may provide thevoice portal data (arrow 7.9) to context profile server 230. Voiceportal system 220 may also forward the telephone call to customerservice system 250 so that an operator of customer service system 250may assist the user via the telephone call.

Context profile server 230 may identify the context profile associatedwith the called telephone number and the location associated with thecaller's telephone number. Context profile server 230 may update thecontext profile to include information corresponding to the voice portaldata (arrow 7.10). Context profile server 230 may then provide theparticular context profile to customer service system 250 (arrow 11) sothat the operator of customer service system 250 may receive the contextprofile when assisting the user.

While a particular example is shown in FIG. 7, the above description ismerely an example implementation. In practice, other examples arepossible from what is described above in FIG. 7.

While the systems and/or methods are described in terms of associating atelephone number with a context profile, the systems and/or methods arenot so limited. For example, in some implementations, a code and/or someother type of identifier may be associated with a context profile inaddition to, or in lieu of, a telephone number. Also, in someimplementations, a user's context profile may be received by thecustomer service provider when the user contacts the customer serviceprovider by telephone, online chat, and/or via some other technique.

FIG. 8 is a diagram of example components of device 800. One or more ofthe devices described above (e.g., with respect to FIGS. 1, 2, 5, and 7)may include one or more devices 800. Device 800 may include bus 810,processor 820, memory 830, input component 840, output component 850,and communication interface 860. In another implementation, device 800may include additional, fewer, different, or differently arrangedcomponents.

Bus 810 may include one or more communication paths that permitcommunication among the components of device 800. Processor 820 mayinclude a processor, microprocessor, or processing logic that mayinterpret and execute instructions. Memory 830 may include any type ofdynamic storage device that may store information and instructions forexecution by processor 820, and/or any type of non-volatile storagedevice that may store information for use by processor 820.

Input component 840 may include a mechanism that permits an operator toinput information to device 800, such as a keyboard, a keypad, a button,a switch, etc. Output component 850 may include a mechanism that outputsinformation to the operator, such as a display, a speaker, one or morelight emitting diodes (“LEDs”), etc.

Communication interface 860 may include any transceiver-like mechanismthat enables device 800 to communicate with other devices and/orsystems. For example, communication interface 860 may include anEthernet interface, an optical interface, a coaxial interface, or thelike. Communication interface 860 may include a wireless communicationdevice, such as an infrared (“IR”) receiver, a Bluetooth® radio, or thelike. The wireless communication device may be coupled to an externaldevice, such as a remote control, a wireless keyboard, a mobiletelephone, etc. In some embodiments, device 800 may include more thanone communication interface 860. For instance, device 800 may include anoptical interface and an Ethernet interface.

Device 800 may perform certain operations relating to one or moreprocesses described above. Device 800 may perform these operations inresponse to processor 820 executing software instructions stored in acomputer-readable medium, such as memory 830. A computer-readable mediummay be defined as a non-transitory memory device. A memory device mayinclude space within a single physical memory device or spread acrossmultiple physical memory devices. The software instructions may be readinto memory 830 from another computer-readable medium or from anotherdevice. The software instructions stored in memory 830 may causeprocessor 820 to perform processes described herein. Alternatively,hardwired circuitry may be used in place of or in combination withsoftware instructions to implement processes described herein. Thus,implementations described herein are not limited to any specificcombination of hardware circuitry and software.

The foregoing description of implementations provides illustration anddescription, but is not intended to be exhaustive or to limit thepossible implementations to the precise form disclosed. Modificationsand variations are possible in light of the above disclosure or may beacquired from practice of the implementations. For example, while seriesof blocks and/or signal flows have been described with regard to FIGS.3-5, the order of the blocks and/or signal flows may be modified inother implementations. Further, non-dependent blocks may be performed inparallel.

The actual software code or specialized control hardware used toimplement an embodiment is not limiting of the embodiment. Thus, theoperation and behavior of the embodiment has been described withoutreference to the specific software code, it being understood thatsoftware and control hardware may be designed based on the descriptionherein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of the possible implementations. Infact, many of these features may be combined in ways not specificallyrecited in the claims and/or disclosed in the specification. Althougheach dependent claim listed below may directly depend on only one otherclaim, the disclosure of the possible implementations includes eachdependent claim in combination with every other claim in the claim set.

Further, while certain connections or devices are shown (e.g., in FIG.2), in practice, additional, fewer, or different, connections or devicesmay be used. Furthermore, while various devices and networks are shownseparately, in practice, the functionality of multiple devices may beperformed by a single device, or the functionality of one device may beperformed by multiple devices. Further, multiple ones of the illustratednetworks may be included in a single network, or a particular networkmay include multiple networks. Further, while some devices are shown ascommunicating with a network, some such devices may be incorporated, inwhole or in part, as a part of the network.

To the extent the aforementioned implementations collect, store, oremploy personal information provided by individuals, it should beunderstood that such information shall be used in accordance with allapplicable laws concerning protection of personal information.Additionally, the collection, storage, and use of such information maybe subject to consent of the individual to such activity, for example,through “opt-in” or “opt-out” processes as may be appropriate for thesituation and type of information. Storage and use of personalinformation may be in an appropriately secure manner reflective of thetype of information, for example, through various encryption andanonymization techniques for particularly sensitive information.

No element, act, or instruction used in the present application shouldbe construed as critical or essential unless explicitly described assuch. An instance of the use of the term “and,” as used herein, does notnecessarily preclude the interpretation that the phrase “and/or” wasintended in that instance. Similarly, an instance of the use of the term“or,” as used herein, does not necessarily preclude the interpretationthat the phrase “and/or” was intended in that instance. Also, as usedherein, the article “a” is intended to include one or more items, andmay be used interchangeably with the phrase “one or more.” Where onlyone item is intended, the terms “one,” “single,” “only,” or similarlanguage is used. Further, the phrase “based on” is intended to mean“based, at least in part, on” unless explicitly stated otherwise.

What is claimed is:
 1. A method comprising: receiving, by a serverdevice and from a user device, application activity data associated withthe user device; determining, by the server device and based on theapplication activity data, a location associated with the user device;storing, by the server device, information associating the applicationactivity data with a call identifier and the location; receiving, by theserver device, an indication that an incoming call has been received,the incoming call being placed using the call identifier; determining,by the server device and based on receiving the indication, a locationof a caller that placed the call; identifying, by the server device, theapplication activity data based on the call identifier and the locationof the caller; and outputting, by the server device, the applicationactivity data to a callee associated with the call.
 2. The method ofclaim 1, wherein determining the location associated with the userdevice includes receiving information regarding an internet protocol(IP) address associated with the user device when receiving theapplication activity data.
 3. The method of claim 1, further comprising:receiving voice portal data when the incoming call is placed, whereinreceiving the indication includes receiving the indication as part ofthe voice portal data.
 4. The method of claim 1, further comprising:receiving voice portal data when the incoming call is placed; andassociating the voice portal data with the application activity databased on identifying the application activity data and receiving thevoice portal data, wherein outputting the application activity dataincludes outputting the voice portal data.
 5. The method of claim 1,wherein the call identifier includes a telephone number.
 6. The methodof claim 1, wherein determining the location of the caller is based onan area code of a telephone number associated with the caller.
 7. Themethod of claim 1, further comprising: determining that the callidentifier has expired; and storing or outputting informationidentifying that call identifier is available based on determining thatthe call identifier has expired.
 8. The method of claim 7, whereindetermining that the call identifier has expired includes at least oneof: receiving the indication, or determining that the caller is nolonger interested in placing the incoming call based on the applicationactivity data.
 9. A system comprising: a server device, comprising: anon-transitory memory device storing: a plurality ofprocessor-executable instructions; and a processor configured to executethe processor-executable instructions, wherein executing theprocessor-executable instructions causes the processor to: receive, froma user device, application activity data associated with the userdevice; determine, based on the application activity data, a locationassociated with the user device; store information associating theapplication activity data with a call identifier and the location;receive an indication that an incoming call has been received, theincoming call being placed using the call identifier; determine, basedon receiving the indication, a location of a caller that placed thecall; identify the application activity data based on the callidentifier and the location of the caller; and output the applicationactivity data to a callee associated with the call.
 10. The system ofclaim 9, wherein executing the processor-executable instructions, todetermine the location associated with the user device, further causesthe processor to receive information regarding an internet protocol (IP)address associated with the user device when receiving the applicationactivity data.
 11. The system of claim 9, wherein executing theprocessor-executable instructions further causes the processor to:receive voice portal data when the incoming call is placed, whereinreceiving the indication includes receiving the indication as part ofthe voice portal data.
 12. The system of claim 9, wherein executing theprocessor-executable instructions further causes the processor to:receiving voice portal data when the incoming call is placed; andassociating the voice portal data with the application activity databased on identifying the application activity data and receiving thevoice portal data wherein executing the processor-executableinstructions, to output the application activity data, causes theprocessor to output the voice portal data.
 13. The system of claim 9,wherein the call identifier includes a telephone number.
 14. The systemof claim 9, wherein executing the processor-executable instructions, todetermine the location of the caller, causes the processor to determinethe location of the caller based on an area code of a telephone numberassociated with the caller.
 15. The system of claim 9, wherein executingthe processor-executable instructions further causes the processor to:determine that the call identifier has expired; and store or outputinformation identifying that call identifier is available based ondetermining that the call identifier has expired.
 16. The system ofclaim 15, wherein executing the processor-executable instructions, todetermine that the call identifier has expired, causes the processor todetermine that the call identifier has expired based on receiving theindication, or determine that the caller is no longer interested inplacing the incoming call based on the application activity data.
 17. Amethod comprising: storing, by the server device, a plurality of contextprofiles, each of the plurality of context profiles includingapplication activity data and being associated with a particular user, aparticular location, and a particular identifier, receiving, by theserver device, an identifier and information identifying a location whena user contacts the customer service provider; determining, by theserver device, whether more than one context profiles, of the pluralityof context profiles, are associated with the identifier; identifying, bythe server device, a particular context profile based on the identifierand the information identifying the location based on determining thatmore than one context profiles are associated with the identifier; andoutputting, by the server device, the particular context profile. 18.The method of claim 17, wherein the identifier includes a telephonenumber.
 19. The method of claim 17, wherein the information identifyingthe location information includes an area code included in theidentifier.
 20. The method of claim 17, wherein the particular locationis based on an internet protocol (IP) address of a user deviceassociated with the application activity data.